@echo off
chcp 65001
setlocal enabledelayedexpansion

title 物业保洁系统环境检查工具

echo =====================================
echo 物业保洁系统环境检查工具
echo =====================================
echo.

REM 检查Docker
echo [1] 检查Docker安装...
where docker >nul 2>nul
if !errorlevel! equ 0 (
    echo    ✅ Docker已安装
    docker --version
) else (
    echo    ❌ Docker未安装
    echo    请访问: https://docs.docker.com/desktop/install/windows-install/
)
echo.

REM 检查Docker Compose
echo [2] 检查Docker Compose安装...
where docker-compose >nul 2>nul
if !errorlevel! equ 0 (
    echo    ✅ Docker Compose已安装
    docker-compose --version
) else (
    echo    ❌ Docker Compose未安装
    echo    请确保Docker Desktop已安装并启用
)
echo.

REM 检查Java
echo [3] 检查Java安装...
where java >nul 2>nul
if !errorlevel! equ 0 (
    echo    ✅ Java已安装
    java -version
) else (
    echo    ❌ Java未安装
    echo    请访问: https://adoptium.net/
)
echo.

REM 检查Node.js
echo [4] 检查Node.js安装...
where node >nul 2>nul
if !errorlevel! equ 0 (
    echo    ✅ Node.js已安装
    node --version
) else (
    echo    ❌ Node.js未安装
    echo    请访问: https://nodejs.org/
)
echo.

REM 检查npm
echo [5] 检查npm安装...
where npm >nul 2>nul
if !errorlevel! equ 0 (
    echo    ✅ npm已安装
    npm --version
) else (
    echo    ❌ npm未安装
    echo    将随Node.js一起安装
)
echo.

REM 检查Git
echo [6] 检查Git安装...
where git >nul 2>nul
if !errorlevel! equ 0 (
    echo    ✅ Git已安装
    git --version
) else (
    echo    ❌ Git未安装
    echo    请访问: https://git-scm.com/download/win
)
echo.

REM 检查端口占用
echo [7] 检查端口占用...
echo    检查端口3306 (MySQL)...
netstat -ano | findstr :3306 >nul
if !errorlevel! equ 0 (
    echo    ⚠️  端口3306已被占用
) else (
    echo    ✅ 端口3306可用
)

echo    检查端口8080 (后端)...
netstat -ano | findstr :8080 >nul
if !errorlevel! equ 0 (
    echo    ⚠️  端口8080已被占用
) else (
    echo    ✅ 端口8080可用
)

echo    检查端口3000 (前端)...
netstat -ano | findstr :3000 >nul
if !errorlevel! equ 0 (
    echo    ⚠️  端口3000已被占用
) else (
    echo    ✅ 端口3000可用
)
echo.

REM 检查项目结构
echo [8] 检查项目结构...
if exist "backend" (
    echo    ✅ backend目录存在
) else (
    echo    ❌ backend目录不存在
)

if exist "frontend" (
    echo    ✅ frontend目录存在
) else (
    echo    ❌ frontend目录不存在
)

if exist "database" (
    echo    ✅ database目录存在
) else (
    echo    ❌ database目录不存在
)
echo.

REM 检查文件
echo [9] 检查关键文件...
if exist "docker-compose.yml" (
    echo    ✅ docker-compose.yml存在
) else (
    echo    ❌ docker-compose.yml不存在
)

if exist "start.bat" (
    echo    ✅ start.bat存在
) else (
    echo    ❌ start.bat不存在
)

if exist "deploy.bat" (
    echo    ✅ deploy.bat存在
) else (
    echo    ❌ deploy.bat不存在
)

if exist "README.md" (
    echo    ✅ README.md存在
) else (
    echo    ❌ README.md不存在
)
echo.

REM 系统信息
echo [10] 系统信息...
echo    操作系统: %OS%
echo    计算机名: %COMPUTERNAME%
echo    用户名: %USERNAME%
echo    当前目录: %CD%
echo.

REM 磁盘空间
echo [11] 磁盘空间检查...
for /f "tokens=3" %%a in ('dir %CD% /-c ^| findstr /c:"bytes free"') do (
    set "free_space=%%a"
)
echo    可用空间: %free_space% bytes

if !free_space! gtr 10000000000 (
    echo    ✅ 磁盘空间充足
) else (
    echo    ⚠️  磁盘空间可能不足，建议至少10GB
)
echo.

REM 内存信息
echo [12] 内存信息...
wmic computersystem get TotalPhysicalMemory /value | findstr TotalPhysicalMemory > temp_memory.txt
for /f "tokens=2 delims==" %%a in (temp_memory.txt) do (
    set "memory=%%a"
)
del temp_memory.txt

set /a memory_gb=!memory:~0,-9! / 1024
echo    总内存: !memory_gb! GB

if !memory_gb! gtr 4 (
    echo    ✅ 内存充足
) else (
    echo    ⚠️  内存可能不足，建议至少4GB
)
echo.

REM 网络连接
echo [13] 网络连接检查...
ping google.com -n 1 >nul 2>nul
if !errorlevel! equ 0 (
    echo    ✅ 网络连接正常
) else (
    echo    ⚠️  网络连接可能有问题
)
echo.

REM 总结
echo =====================================
echo 环境检查完成！
echo =====================================
echo.
echo 下一步操作：
echo 1. 确保所有必需软件已安装
echo 2. 运行: start.bat 启动系统
echo 3. 运行: quick-test.bat 测试系统
pause